package com.autumn.web.annotation;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 上下文在配置服务上启用请求标头
 * <p>
 * 当在控制器或控制器方法上使用该注解时，会自动检查请求头 Request Header 中参数， 需要启用
 * {@link com.autumn.web.annotation.context.EnableServiceRequestContext} 才有效
 * </p>
 * 
 * @author 老码农
 *         <p>
 *         Description
 *         </p>
 * @date 2018-01-08 01:50:13
 */
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Target({ ElementType.TYPE, ElementType.METHOD })
public @interface ContextServiceRequestHeader {

	/**
	 * 请求头部默认参数名称
	 */
	public final static String HEADER_DEFAULT_PARAMETER_NAME = "contextServiceId";

	/**
	 * 头部参数名称
	 * 
	 * @return
	 */
	String headerParameterName() default HEADER_DEFAULT_PARAMETER_NAME;

	/**
	 * 是否是必须输入
	 * 
	 * @return
	 */
	boolean required() default true;
}
